package model

import (
	"gorm.io/gorm"
	"ljzn-sass-cloud/pkg/utilx/idutilx"
)

type LjAgvCarInfo struct {
	Id              int64  `json:"id" gorm:"column:id"`
	AgvCarId        string `json:"agv_car_id" gorm:"column:agv_car_id"`               // 无人车编号
	FactoryNo       string `json:"factory_no" gorm:"column:factory_no"`               // 出厂编号
	ControlNo       string `json:"control_no" gorm:"column:control_no"`               // 控制器编号
	Sim             string `json:"sim" gorm:"column:sim"`                             // sim卡号
	WaterpPumpNo    string `json:"waterp_pump_no" gorm:"column:waterp_pump_no"`       // 水泵品牌号
	EngineNo        string `json:"engine_no" gorm:"column:engine_no"`                 // 发动机编号
	EngineBrand     string `json:"engine_brand" gorm:"column:engine_brand"`           // 发动机品牌型号
	EngineSpecsInfo string `json:"engine_specs_info" gorm:"column:engine_specs_info"` // 发动机规格信息
	BatterySpecs    string `json:"battery_specs" gorm:"column:battery_specs"`         // 电池规格信息
	FanSpecsNo      string `json:"fan_specs_no" gorm:"column:fan_specs_no"`           // 风机规格型号
	Remark          string `json:"remark" gorm:"column:remark"`                       // 其他，备注
}

func (m *LjAgvCarInfo) TableName() string {
	return "lj_agv_car_info"
}

// func (m *LjAgvCarInfo) AfterCreate(tx *gorm.DB) error {
// 	m.TypeID = idutilx.GetUuid(m.ID, "")
//	return tx.Table(m.TableName()).Save(m).Error
// }

type LjAgvCarLsWorkRecord struct {
	Id                 int64     `json:"id" gorm:"column:id"`                                       // 无人车表主键
	WorkId             string    `json:"work_id" gorm:"column:work_id"`                             // uuid 作业id
	AgvCarId           string    `json:"agv_car_id" gorm:"column:agv_car_id"`                       // 无人车id
	DeviceSn           string    `json:"device_sn" gorm:"column:device_sn"`                         // sn号
	BeginTime          time.Time `json:"begin_time" gorm:"column:begin_time"`                       // 作业开始时间
	EndTime            time.Time `json:"end_time" gorm:"column:end_time"`                           // 作业结束时间
	WorkPointsFilePath string    `json:"work_points_file_path" gorm:"column:work_points_file_path"` // 作业经纬度点集(文件)
	CreatedAt          time.Time `json:"created_at" gorm:"column:created_at"`                       // 创建时间
	UpdatedAt          time.Time `json:"updated_at" gorm:"column:updated_at"`                       // 修改时间
	DeletedAt          time.Time `json:"deleted_at" gorm:"column:deleted_at"`                       // 删除时间
	DeleteDic          int32     `json:"delete_dic" gorm:"column:delete_dic"`                       // 删除状态 请查看对应字典表
	WorkLength         float64   `json:"work_length" gorm:"column:work_length"`                     // 行驶里程
	WorkTimeSecond     int64     `json:"work_time_second" gorm:"column:work_time_second"`           // 作业时长(s)
	WorkTime           int64     `json:"work_time" gorm:"column:work_time"`                         // 作业时间（结束时间-开始时间）
	WorkAverageSpeed   float64   `json:"work_average_speed" gorm:"column:work_average_speed"`       // 平均速度。km/h
	WorkSprayAmount    float64   `json:"work_spray_amount" gorm:"column:work_spray_amount"`         // 喷药量
	WorkName           string    `json:"work_name" gorm:"column:work_name"`                         // 作业名称
	WorkArea           float64   `json:"work_area" gorm:"column:work_area"`                         // 作业面积 平方米
	WorkNumber         string    `json:"work_number" gorm:"column:work_number"`                     // 作业唯一编号
	WorkRepeatArea     float64   `json:"work_repeat_area" gorm:"column:work_repeat_area"`           // 作业重复面积
	WorkWidth          float64   `json:"work_width" gorm:"column:work_width"`                       // 作业宽幅
	WorkType           string    `json:"work_type" gorm:"column:work_type"`                         // 作业类型
}

func (m *LjAgvCarLsWorkRecord) TableName() string {
	return "lj_agv_car_ls_work_record"
}

// func (m *LjAgvCarLsWorkRecord) AfterCreate(tx *gorm.DB) error {
// 	m.TypeID = idutilx.GetUuid(m.ID, "")
//	return tx.Table(m.TableName()).Save(m).Error
// }
